﻿using System;
using System.Text;
using System.Collections.Generic;
using Cinchoo.Core.Configuration;
using System.ComponentModel;
using System.Runtime.Remoting.Contexts;
using System.Dynamic;
using Cinchoo.Core.Text.RegularExpressions;
using System.Text.RegularExpressions;
using Cinchoo.Core.Diagnostics;
using Cinchoo.Core;
using System.Diagnostics;
using Cinchoo.Core.Xml.Serialization;
using Cinchoo.Core.IO;
using System.IO;
using System.Xml.Serialization;
using Xceed.Wpf.Toolkit.PropertyGrid.Attributes;
using System.Windows;
using Cinchoo.Core.WPF;
using System.Windows.Data;
using System.Linq;
using System.Collections.ObjectModel;
using ChoWorkflowServer.Model;
using System.Reflection;
using Cinchoo.Core.Windows;

namespace ChoETLTaskPGSourceObjects
{
    public class CSV_SQLITE_TABLE_IMPORT_PGSourceObject : ChoPropertyGridSourceObject
    {
        #region Instance Data Members (Mandatory Options)

        [Category("Mandatory Params")]
        [Description("SQLite connection string")]
        [DisplayName("Connection String")]
        public string CONNECTION_STRING
        {
            get;
            set;
        }

        [Category("Mandatory Params")]
        [Description("Absolute path of the CSV file.")]
        [DisplayName("CSV File Path")]
        public string FILE_PATH
        {
            get;
            set;
        }

        [Category("Mandatory Params")]
        [Description("Table Name where the data inserted into.")]
        [DisplayName("Table Name")]
        public string TABLE_NAME
        {
            get;
            set;
        }

        #endregion Instance Data Members (Mandatory Options)

        #region Instance Data Members (Optional Options)

        [Category("Optional Params")]
        [Description("Optional field seperator.")]
        [DisplayName("Transaction Scope")]
        [DefaultValue(true)]
        public bool TRNSACTION_SCOPE
        {
            get;
            set;
        }

        [Category("Optional Params")]
        [Description("Empty the table before import.")]
        [DisplayName("Empty Table")]
        [DefaultValue(true)]
        public bool EMPTY_TABLE
        {
            get;
            set;
        }

        [Category("Optional Params")]
        [Description("Optional CSV file field seperator.")]
        [DisplayName("Seperator")]
        [DefaultValue(",")]
        public string SEPERATOR
        {
            get;
            set;
        }

        #endregion Instance Data Members (Common Options)
    }
}
